package de.unicornEntertainment.stundenplanapp.menu;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.actionbarsherlock.app.SherlockActivity;

import de.unicornEntertainment.stundenplanapp.R;
import de.unicornEntertainment.stundenplanapp.abwesenheitsnotiz.AbwesenheitsnotizActivity;
import de.unicornEntertainment.stundenplanapp.abwesenheitsuebersicht.AbwesenheitenActivity;
import de.unicornEntertainment.stundenplanapp.benachrichtigen.BenachrichtigungActivity;
import de.unicornEntertainment.stundenplanapp.blockzeiten.BlockzeitenActivity;
import de.unicornEntertainment.stundenplanapp.einstellungen.EinstellungenActivity;
import de.unicornEntertainment.stundenplanapp.infos.SchulinfosActivity;
import de.unicornEntertainment.stundenplanapp.lehreruebersicht.LehreruebersichtActivity;
import de.unicornEntertainment.stundenplanapp.login.ActivityLogin;
import de.unicornEntertainment.stundenplanapp.raumplan.RaumplanActivity;
import de.unicornEntertainment.stundenplanapp.raumuebersicht.RaumuebersichtActivity;
import de.unicornEntertainment.stundenplanapp.stundenplan.KlassenlisteActivity;
import de.unicornEntertainment.stundenplanapp.stundenplan.StundenplanActivity;
import de.unicornEntertainment.stundenplanapp.stundenplan.StundenplanDetailsActivity;
import de.unicornEntertainment.stundenplanapp.vertretung.VertretungenActivity;

public class MenuActivity extends SherlockActivity implements OnClickListener {
	
	// Globale Deklaration
	private Intent intent;
	private Activity context = this;
	private int benutzertyp;
	private String klasse = ActivityLogin.getKlasse();
	
	/**
	 * Wird beim Start der Activity ausgeführt
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_menu);
		
		// Intent der vorigen Activity abfragen
		intent = getIntent();
		benutzertyp = new Integer(intent.getIntExtra("typ", 0));
//		System.out.println("Benutzertyp: " + benutzertyp);
		
		// Buttons auf GUI holen und OnClickListener den Buttons hinzufügen
		// Die Buttons Raumplan und Infos zur Schule werden bei allen Benutzergruppen
		// angezeigt 
		Button raumplan = (Button) findViewById(R.id.menu_button_raumplan);
		raumplan.setOnClickListener(this);
		
		Button lehreruebersicht = (Button) findViewById(R.id.menu_button_lehreruebersicht);
		lehreruebersicht.setOnClickListener(this);
		
		Button infos = (Button) findViewById(R.id.menu_button_infos);
		infos.setOnClickListener(this);
		
		Button blockzeiten = (Button) findViewById(R.id.menu_button_blockzeiten);
		blockzeiten.setOnClickListener(this);
		
		// Die Buttons Vertretungsplan, Stundenplan, Einstellungen und Nachricht senden werden zusätzlich bei den 
		// Benutzergrupppen	Schüler und Lehrer angezeigt
		if (benutzertyp >= 1){
			Button vertretungsplan = (Button) findViewById(R.id.menu_button_vertretungsplan);
			vertretungsplan.setVisibility(Button.VISIBLE);
			vertretungsplan.setOnClickListener(this);
			
			Button stundenplan = (Button) findViewById(R.id.menu_button_stundenplan);
			stundenplan.setVisibility(Button.VISIBLE);
			stundenplan.setOnClickListener(this);
			
//			System.out.println("Benutzertyp: " + benutzertyp);
			
			Button einstellungen = (Button) findViewById(R.id.menu_button_einstellungen);
			einstellungen.setVisibility(Button.GONE);
			einstellungen.setOnClickListener(this);
			
			Button nachrichtSenden = (Button) findViewById(R.id.menu_button_nachrichtSenden);
			nachrichtSenden.setVisibility(Button.GONE);
			nachrichtSenden.setOnClickListener(this);
			
			// Die Buttons Raumuebersicht, Abwesenheitsuebersicht und Abwesenheitsnotiz werden nur
			// Bei der Benutzergruppe Lehrer angezeigt
			if(benutzertyp == 2){
//				System.out.println("Benutzertyp: " + benutzertyp);
				
				Button raumuebersicht = (Button) findViewById(R.id.menu_button_raumuebersicht);
				raumuebersicht.setVisibility(Button.GONE);
				raumuebersicht.setOnClickListener(this);
				
				Button abwesenheitsuebersicht = (Button) findViewById(R.id.menu_button_abwesenheitsuebersicht);
				abwesenheitsuebersicht.setVisibility(Button.VISIBLE);
				abwesenheitsuebersicht.setOnClickListener(this);
				
				Button abwesenheitsnotiz = (Button) findViewById(R.id.menu_button_abwesenheitsnotiz);
				abwesenheitsnotiz.setVisibility(Button.VISIBLE);
				abwesenheitsnotiz.setOnClickListener(this);
			}
		}
	}

	/**
	 * Wertet das Klickverhalten der Buttons im Menü aus.
	 */
	@Override
	public void onClick(View v) {
		
		// Lokale Deklaration
		int initiator = v.getId();
		
		switch (initiator) {
		case R.id.menu_button_stundenplan: 
			
			if(benutzertyp == 1){
				intent = new Intent(context, StundenplanDetailsActivity.class);
				intent.putExtra("klasse", klasse);
			}
			else if(benutzertyp == 2){
				intent = new Intent(context, KlassenlisteActivity.class);
			}
			
//			intent = new Intent(context, StundenplanActivity.class);
			break;
		case R.id.menu_button_vertretungsplan: intent = new Intent(context, VertretungenActivity.class);
			break;
		case R.id.menu_button_abwesenheitsnotiz: intent = new Intent(context, AbwesenheitsnotizActivity.class);
			break;
		case R.id.menu_button_abwesenheitsuebersicht: intent = new Intent(context, AbwesenheitenActivity.class);
			break;
		case R.id.menu_button_einstellungen: intent = new Intent(context, EinstellungenActivity.class);
			break;
		case R.id.menu_button_lehreruebersicht: intent = new Intent(context, LehreruebersichtActivity.class);
			break;
		case R.id.menu_button_nachrichtSenden: intent = new Intent(context, BenachrichtigungActivity.class);
			break;
		case R.id.menu_button_raumplan: intent = new Intent(context, RaumplanActivity.class);
			break;
		case R.id.menu_button_raumuebersicht: intent = new Intent(context, RaumuebersichtActivity.class);
			break;
		case R.id.menu_button_infos: intent = new Intent(context, SchulinfosActivity.class);
			break;
		case R.id.menu_button_blockzeiten: intent = new Intent(context, BlockzeitenActivity.class);
			break;
		default: context.finish();
			break;
		}
		// Zur nächsten Activity wechseln
		startActivity(intent);
	}
	
	/**
	 * Erzeugt beim Start der Activity das dazugehörige Menü
	 */
//	@Override
//	public boolean onCreateOptionsMenu(Menu menu) {
//		new MenuInflater(this).inflate(R.menu.activity_login, menu);
//		return super.onCreateOptionsMenu(menu);
//	}
}
